package com.shopping.huaju.commodity.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shopping.huaju.commodity.entity.AttrAttrgroupRelationEntity;
import com.shopping.huaju.commodity.entity.AttrEntity;
import com.shopping.huaju.commodity.entity.vo.AttrGroupWithAttrsVo;
import com.shopping.huaju.commodity.entity.vo.SpuItemAttrGroupVo;
import com.shopping.huaju.common.utils.PageUtils;
import com.shopping.huaju.commodity.entity.AttrgroupEntity;

import java.util.List;
import java.util.Map;

/**
 * 家居商品属性分组
 *
 * @author tofu
 * @email tofu@qq.com
 * @date 2023-11-06 21:31:44
 */
public interface AttrgroupService extends IService<AttrgroupEntity> {

    PageUtils queryPage(Map<String, Object> params);
    //自定义接口 -- 实现根据categoryId 和 id 、 name 三个条件查询返回分页数据结果
    PageUtils queryPage(Map<String, Object> params, Long categoryId);

    //新增接口 -- 实现根据属性关联对象的属性id和属性组id 删除/批量删除 关联关系
    void deleteRelation(AttrAttrgroupRelationEntity[] attrAttrgroupRelationEntities);
    //根据业务需求, 根据属性关联对象的属性id和属性组id 将属性关联对象  保存/批量 到数据库中
    void saveRelation(AttrAttrgroupRelationEntity[] attrAttrgroupRelationEntities);

    //根据业务需求，根据分类id 返回分类下的属性组和基本属性数据 要求按层级结构
    List<AttrGroupWithAttrsVo> getAttrGroupWithAttrsVo(Long categoryId);

    List<SpuItemAttrGroupVo> getAttrGroupWithAttrsBySpuId(Long spuId, Long catalogId);
}

